﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IndustryWrapper
{
    public class CMotion_Simulate : IMotionPartI, IIoPart,IMotionPartII, IMotionPartSpecial,IInitModel
    {
        public int compare()
        {
            return 0;
        }

        public bool getDi(ref CIO_Di input)
        {
            return false;
        }

        public bool getDo(ref CIO_Do output)
        {
            return false;
        }

        public bool getIoModel(ref CIoModel m)
        {
            return false;
        }

        public bool Init()
        {
            return true;
        }

        public int MC_AxisRef(ref CAxisRef axisref)
        {
            return 0;
        }

        public int MC_AxisRef(CAxisModelPrm prm)
        {
            throw new NotImplementedException();
        }

        public int MC_BuffControl(List<string> cmdList)
        {
            throw new NotImplementedException();
        }

        public int MC_Compare(CAxisRef axis, double posMM, CIO_Di cmpInput)
        {
            return 0;
        }

        public int MC_Compare(CAxisRef axis, double posMM, CIO_Do cmpInput)
        {
            return 0;
        }

        public int MC_CrdCheckExist(string crdID)
        {
            return 0;
        }

        public int MC_CrdCreate(string crdID)
        {
            return 0;
        }

        public int MC_CrdData(string crdID, string cmd)
        {
            return 0;
        }

        public int MC_CrdData(string crdID, List<string> gcode)
        {
            return 0;
        }

        public int MC_CrdPause(string crdID)
        {
            return 0;
        }

        public int MC_CrdStart(string crdID)
        {
            return 0;
        }

        public int MC_CrdStatus(ref CCrdPrmSingle crd)
        {
            return 0;
        }

        public int MC_CrdStop(string crdID)
        {
            return 0;
        }

        public int MC_EStop(CAxisRef axis)
        {
            return 0;
        }

        public bool MC_GetIO(ref CIOBase data)
        {
            throw new NotImplementedException();
        }

        public bool MC_GetIO(CIO_Di data)
        {
            return true;
        }

        public bool MC_GetIO(CIO_Do data)
        {
            throw new NotImplementedException();
        }

        public float MC_GetIO(CIO_Ai data)
        {
            throw new NotImplementedException();
        }

        public float MC_GetIO(CIO_Ao data)
        {
            throw new NotImplementedException();
        }

        public long MC_GetIO(CIO_Enc data)
        {
            throw new NotImplementedException();
        }

        public bool MC_GetIO(ref CIO_Di data)
        {
            throw new NotImplementedException();
        }


        public bool MC_GetModel(CIoModel data)
        {
            throw new NotImplementedException();
        }

        public int MC_Home(ref CAxisRef axis)
        {
            return 0;
        }

        public int MC_HomeStatus(ref CAxisRef axis)
        {
            return 0;
        }

        public int MC_MoveAbs(CAxisRef axis, double tpos, double beilv = 0.5)
        {
            return 0;
        }

        public int MC_MoveAdd(CAxisRef axis, double dist, double beilv = 0.5)
        {
            return 0;
        }

        public int MC_MoveJog(CAxisRef axis, double beilv = 0.5)
        {
            return 0;
        }

        public int MC_PowerOff(CAxisRef axis)
        {
            return 0;
        }

        public int MC_PowerOn(CAxisRef axis)
        {
            return 0;
        }

        public int MC_Reset(CAxisRef axis)
        {
            return 0;
        }


        public int MC_SetAxisParameter(CAxisSinglePrm axisPrm)
        {
            return 0;
        }

        public bool MC_SetDo(CIO_Do data, bool value)
        {
            return true;
        }

        public bool MC_SetDo(CIO_Ao data, float value)
        {
            return true;
        }

        public int MC_SetPos(CAxisRef axis, double pos)
        {
            return 0;
        }

        public bool setDo(CIO_Do output, bool value, bool reverse = false)
        {
            return false;
        }

        public bool UnInit()
        {
            return true;
        }
    }
}
